


# 计数排序 - 对元素的值有限制
def counting_sort(data, max_value=100):
    # 最大值为100 需要开辟的数组空间为101 可以存储0 - 100内的值
    temp = [0] * (max_value + 1)
    
    # 列表的下标为值 统计val出现的次数
    for val in data:
        temp[val] += 1
    
    data.clear()

    # 根据出现的次数就加到data中去 
    for val, count in enumerate(temp):
        for _ in range(count):
            data.append(val)
    

import random

data = [random.randint(0, 100) for _ in range(1000)]
print(data)
counting_sort(data, max_value=100)
print(data)